package com.jctrip.hotel.source.model.dossen;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @Author: beihai
 * @Date: 2022/9/22 23:29
 * @Description:
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DossenAddOrderReq {
    /**
     * 酒店ID
     */
    @NotBlank
    private String hotelId;

    /**
     * 房型ID
     */
    @NotBlank
    private String roomTypeId;

    /**
     * 入住时间
     */
    @NotNull
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String checkInDate;

    /**
     * 离店时间
     */
    @NotNull
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String checkOutDate;

    /**
     * 活动码
     */
    @NotBlank
    private String activityCode;

    /**
     * 预定间数
     */
    @NotNull
    private Integer num;

    /**
     * 预定人姓名
     */
    @NotBlank
    private String mebName;

    /**
     * 预定人联系号码
     */
    @NotBlank
    private String tel;

    /**
     * 总房价(用于校验房价是否有变动)
     */
    @NotNull
    private Integer sumPrice;

    /**
     * 备注
     */
    private String remark;

    /**
     * 入住类型，默认为NS(全天房)
     */
    private String checkInType;

    /**
     * 是否是担保订单
     */
    @NotNull
    private Boolean isGuarantee;

    /**
     * 外部订单号(用于防重复下单)
     */
    @NotBlank
    private String outOrderId;

    /**
     * ota预定类型 1是协议预定，2会员预定，默认为协议 预订
     */
    private String otaBookType;

    /**
     * 东呈会员标识 【请注意:仅限会员互通渠道专用字段】
     */
//    private String memberNo;

    /**
     * 企业协议号(托管渠道专用字段),该字段业务意义迁移至enterpriseProtocolCode字段
     */
//    private String agreementNo;
    /**
     * 企业会员协议code
     */
    @NotBlank
    private String enterpriseProtocolCode;

    /**
     * 卡等级，默认 1 YbRate  普卡 2 ZsRate  银卡 3 ZzRate 金卡  4 HjRate 黑金卡
     * 配置表里面取
     */
//    private Integer cardLevel;

    /**
     * 为 true 展示限时活动(默认不展示)
     */
//    private Boolean isShowTimeLimitActivity;
}
